From b02530a77572e6162c6793326d7af7ea6c7eda40 Mon Sep 17 00:00:00 2001 From: "mwilli2@equilibrium.research" Date: Thu, 12 May 2005 00:59:33 +0000 Subject: [PATCH] bitkeeper revision 1.1389.15.21 (4282aa75a-T-dS1Y6SxMFP1eBJkE5w) Fix the fake e820 map for dom0 and unpriv domains, request certain resources only when in dom0. This makes /proc/iomem look "more" normal and makes kernel IO memory resource tree more accurate. Signed-off-by: mark.williamson@cl.cam.ac.uk --- linux-2.6.11-xen-sparse/arch/xen/i386/kernel/setup.c | 9 +++++++-- .../include/asm-xen/asm-i386/mach-xen/setup_arch_post.h | 7 ++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/setup.c b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/setup.c index a53fdd31d4..7f13e19253 100644 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/setup.c +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/setup.c @@ -289,6 +289,10 @@ static void __init probe_roms(void) unsigned char *rom; int i; + /* Nothing to do if not running in dom0. */ + if ( !(xen_start_info.flags & SIF_INITDOMAIN) ) + return; + /* video rom */ upper = adapter_rom_resources[0].start; for (start = video_rom_resource.start; start < upper; start += 2048) { @@ -1213,8 +1217,9 @@ static void __init register_memory(void) else legacy_init_iomem_resources(&code_resource, &data_resource); - /* EFI systems may still have VGA */ - request_resource(&iomem_resource, &video_ram_resource); + if ( xen_start_info.flags & SIF_INITDOMAIN ) + /* EFI systems may still have VGA */ + request_resource(&iomem_resource, &video_ram_resource); /* request I/O space for devices used on all i[345]86 PCs */ for (i = 0; i < STANDARD_IO_RESOURCES; i++) diff --git a/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_post.h b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_post.h index 2bfd4df069..ac8cbb7a92 100644 --- a/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_post.h +++ b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_post.h @@ -13,7 +13,12 @@ static char * __init machine_specific_memory_setup(void) who = "Xen"; - start_pfn = 0; + /* In dom0, we have to start the fake e820 map above the first 1MB, in + * other domains, it can start at 0. */ + if ( xen_start_info.flags & SIF_INITDOMAIN ) + start_pfn = 0x100; + else + start_pfn = 0; max_pfn = xen_start_info.nr_pages; e820.nr_map = 0; -- 2.30.2